home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / hello_detect.nasl < prev    next >
Text File  |  2005-03-31  |  4KB  |  113 lines

  1. # This plugin was written by Michel Arboi <arboi@alussinan.org>
  2. # It is released under the GNU Public Licence (GPLv2)
  3. #
  4. # See RFC 831 & gated source (hello.h)
  5. # http://www.zvon.org/tmRFC/RFC891/Output/chapter2.html
  6. #
  7.  
  8. if(description)
  9. {
  10.   script_id(11913);
  11.   script_version ("$Revision: 1.5 $");
  12.  
  13.   name["english"] = "DCN HELLO detection";
  14.   script_name(english:name["english"]);
  15.  
  16.   desc["english"] = "
  17. This machine is running HELLO. This routing protocol is obsolete and 
  18. should not be used any more.
  19.  
  20. Risk factor : Low";
  21.  
  22.   script_description(english:desc["english"]);
  23.  
  24.   summary["english"] = "Sends an DCH HELLO Message";
  25.   script_summary(english:summary["english"]);
  26.   script_category(ACT_GATHER_INFO); 
  27.   script_copyright(english:"This script is Copyright (C) 2003 Michel Arboi");
  28.   script_family(english:"Service detection");
  29.   exit(0);
  30. }
  31.  
  32. #
  33. #                         1                   0 
  34. #               5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
  35. #          --- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  36. # Fixed        |           Checksum            |
  37. # Area         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  38. #              |             Date              |
  39. #              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  40. #              |                               |
  41. #              +              Time             +
  42. #              |                               |
  43. #              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  44. #              |           Timestamp           |
  45. #              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  46. #              |     Offset    |   Hosts (n)   |
  47. #          --- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  48. # Host         |          Delay Host 0         |
  49. # Area         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  50. #              |         Offset Host 0         |
  51. #              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  52. #             ...                             ...
  53. #              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  54. #              |         Delay Host n-1        |
  55. #              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  56. #              |         Offset Host n-1       |
  57. #          --- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  58. #                Figure 3. HELLO Message Format
  59.  
  60. include('global_settings.inc');
  61. include("network_func.inc");
  62. ##include("dump.inc");
  63.  
  64. if (islocalhost()) exit(0); # Would false positive
  65.  
  66. s = this_host();
  67. v = eregmatch(pattern: "^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9])+$", string: s);
  68. if (isnull(v)) exit(0);
  69.  
  70. for (i = 1; i <=4; i++) a[i] = int(v[i]);
  71.  
  72. a1 = rand() % 256; a2 = rand() % 256;
  73. s1 = rand() % 256; s2 = rand() % 256;
  74.  
  75. # Date is in RT-11 format, i.e. little endian, AFAIK. The date overflows
  76. # in 2003 (!) so I suggest to tell them that we are at 2003-12-31 
  77. # The source of gated gives more information than RFC 891. 2003-12-31 would
  78. # give: 0x33FF; adding flags 0xC000 (Clock is unsynchronized) gives 0xF3FF
  79.  
  80. ms = ms_since_midnight();        # milliseconds since midnight
  81. if (isnull(ms)) ms = rand();
  82.  
  83. r = raw_string(
  84.     0, 0,         # Checksum
  85.     0xF3, 0xFF    # Date
  86.     );
  87. r += htons(ms);        # Time = ms since midnight
  88. r  += raw_string(
  89.     0, 0,        # Timestamp
  90.     0,        # Offset (?)
  91.     0 );        # Nb of hosts ??
  92.  
  93. ck = ip_checksum(data: r);
  94. r2 = insstr(r, ck, 0, 1);
  95.  
  96. # HELLO is protocol 63
  97. egp = forge_ip_packet(ip_v: 4, ip_hl: 5, ip_tos: 0, ip_p: 63, ip_ttl: 64,
  98.             ip_off: 0, ip_src: this_host(),    data: r2);
  99.  
  100. f = "ip proto 63 and src " + get_host_ip();
  101. r = send_packet(egp, pcap_active: TRUE, pcap_filter: f);
  102. if (isnull(r)) exit(0);
  103.  
  104. ##hl = ord(r[0]) & 0xF; hl *= 4;
  105. ##hello = substr(r, hl);
  106. ##dump(dtitle: "hello", ddata: hello);
  107.  
  108. #ck = ip_checksum(data: hello);
  109.  
  110. security_warning(port: 0, proto: "hello");
  111.